1. Field of the Invention
This invention pertains in general to computer software service management, and more specifically to tracking usage of software applications over time.
2. Description of the Related Art
A number of software applications today require subscription to some type of service provider in order to effectively use many of the capabilities that the software applications have to offer. For example, many antivirus and other types of security software applications require subscription to a service to receive regular security updates (e.g., to receive the latest virus definitions or information about new viruses and other threats, to activate certain features of a software application for a user, etc.) that can be provided by a server managed by the company providing the security software.
Managing these types of multi-month or multi-year subscription services can be challenging, however. These subscriptions often must be tracked on a disconnected client machine with little or no server connection or interaction. Thus, relying on when the client computer connects to the server for subscription time tracking is frequently not an effective mechanism for getting regular time measurements.
Tracking of these types of subscriptions is also often performed using the local system clock on the computer to determine the local date and time for that machine and to track how much time has passed since the start of the subscription period. However, the local system clock on client computers is often not very reliable. The local date and time can sometimes be radically changed either by accident or in some cases the date/time may be tampered with. When a user has a subscription for a service and the user's system clock is modified in some manner, the subscription can be greatly affected. A user who has a valid subscription could possibly be denied service due to an internal system clock error which makes it appear as if the user's subscription has expired or that the subscription period has not yet begun.
In addition, a user who has a subscription that has actually expired may be given service for a longer period of time without being required to pay for this extra service. In fact, tampering with the system clock is one way by which a dishonest user can extend his or her subscription without having to bear the costs of this extension (e.g., a user can set his system clock back a few months right before the subscription is about to expire to gain extra months worth of free service).
These types of errors in the system clock time readings that cause subscription tracking issues can possibly be corrected by having the client computer connect to a licensing server associated with the service that is aware of the actual time. However, if numerous clients with system clock issues try to connect to a licensing server at a time, the server may go down due to all the problems in subscription tracking. For example, the licensing server could go down due to a malicious denial of service attack against the server (e.g., the attack results in the server being bombarded by clients trying to connect causing the server to go down). Thus, while the licensing server might be able to provide a more accurate tracking of the time that has passed in a service subscription period in many cases, it is better to have as little client-to-server interaction as possible.
Therefore, there is a need in the art for a reliable method of tracking time usage on a sometimes disconnected client computer over a period of time with limited server interaction in which the method is not hampered by problems encountered when relying on the client computer's local system clock.